#ifndef LIRENOMCAPA_H
#define LIRENOMCAPA_H

#include <iostream>
#include <string>
#include <vector>

// pour unary_function
#include <functional>

#include "ListCapa.h"

/**
 * Foncteur permettant de retrouver le nom d'une capacité à partir du
 * conteneur capacites d'une Race.
 *
 * Est utilisé en conjonction avec un transform, pour obtenir un
 * conteneur de noms à partir d'un conteneur d'indices.
 *
 * @author Johan "Solo" Luisier
 */
class LireNomCapa : std::unary_function<unsigned int, std::string>
{
 public:
  LireNomCapa( const std::vector< ListCapa >* ls = 0 );
  ~LireNomCapa();
  std::string operator()( const unsigned int& i ) const;
  void setCapa( const std::vector< ListCapa >* ls );
 private:
  /**
   * Pointeur sur un conteneur de ListCapa. Peut être des capacités
   * raciales, ou alors des ensembles raciaux, voire encore des
   * ensembles de compétences pour un Race. Est également utilisé pour
   * les Dons, Désavantages et Compétences diverses.
   */
  const std::vector< ListCapa > *lsCapa;
};

#endif // LIRENOMCAPA_H
